## 8.3. Alias

>     Alias url_path directory_or_filename
>     Server config, virtual host

The `Alias` directive allows documents to be stored somewhere in the filesystem other than under the `DocumentRoot`. We can demonstrate this simply by creating a new directory, /usr/www/somewhere_else, and putting in it a file lost.txt, which has this message in it:

>     I am somewhere else

Now edit httpd.conf so that it looks like this:

>     ...
>     TransferLog /usr/www/site.alias/logs/customers/access_log
>     Alias /somewhere_else /usr/www/somewhere_else
>     <VirtualHost butterthlies_sales
>     ...

Run go and, from the browser, access http://www.butterthlies.com/somewhere_else/.

We see:

>     Index of /somewhere_else
>     . Parent Directory
>     . lost.txt

If we click on `Parent` `Directory`, we arrive at the `DocumentRoot` for this server, /usr/www/site.alias/htdocs/customers, not, as might be expected, at /usr/www. This is because `Parent` `Directory` really means "parent URL," which is http://www. butterthlies.com/ in this case.

What sometimes puzzles people (even those who know about it but have temporarily forgotten) is that if you go to http://www.butterthlies.com/, and there's no ready-made index, you don't see somewhere_else listed.

Note that you do not want to write:

>     Alias /somewhere_else/ /usr/www/somewhere_else

(with a trailing "/" after the first somewhere_else) since this can produce baffling Not Found errors for the client.

Copyright © 2001 O'Reilly & Associates. All rights reserved.